有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Firebase实时数据库:如何停止脱机写入?(最佳方法)

目前,为了防止从脱机状态返回后写入Firebase,我在每次写入操作之前检查internet连接。 我这样说并不仅仅是指检查网络连接,还包括是否有实际的互联网接入。我喜欢谷歌。com,以便找到答案

我认为这不是最好的办法

那么,当没有可用的internet连接时,告诉Firebase不要缓存任何写操作,只预览一条简单的“没有可用的internet连接”消息的最佳做法是什么


共 (2) 个答案

  1. # 1 楼答案

    So, what is the best practice to just tell Firebase not to cache any write operations when there is no internet connection

    您不能告诉Firebase在脱机时不要将写操作添加到队列中。这是Firebase实时数据库最重要的功能之一。因此,即使您的应用程序暂时失去网络连接,Firebase应用程序也可以工作。这就是这个数据库的美妙之处

    默认情况下,禁用脱机持久性。如果启用了持久性,那么最简单的禁用方法是使用以下代码行:

    FirebaseDatabase.getInstance().setPersistenceEnabled(true);
    

    通过这种方式,您可以告诉Firebase您根本不需要任何缓存数据,这样就不会有写挂起的操作,但不幸的是,您可以告诉Firebase仅在脱机时停止缓存数据

  2. # 2 楼答案

    如果当用户的设备暂时失去连接时,您确实必须使应用程序无法使用,那么您必须将侦听器添加到名为/.info/connected的特殊位置。当SDK认为它已失去连接时,它将告诉您。这在documentation中描述。当您的侦听器收到这样的通知时,您必须编写代码以使您的应用程序按照您希望的方式运行

    但是,在SDK做出连接实际消失的决定之前,您的应用程序可能从连接停止的那一刻起就已经写入了数据。这些写操作仍将同步

    最好让您的应用程序可以脱机使用,并在用户的数据由于脱机而尚未同步时通知用户